#include"Stack.h"

//仿函数/函数对象：重载operator()的类，类的对象可以像函数一样使用
class Func
{
public:
	void operator()(int n)
	{
		while (n--)
		{
			cout << "Func调用" << endl;
		}
		cout << endl;
	}
};

template<class T>
class myless
{
public:
	bool operator()(const T& x, const T& y)
	{
		return x < y;
	}
};

int main()
{
	Func f1;
	f1(10);
	f1.operator()(20);

	//仿函数：根据你的需求，只有operator()是固定的，并没有规定返回值是什么，返回值也是根据你的需求来返回的，更灵活；
	//特点：参数个数和返回值根据需求确定，不固定，很灵活。

	myless<int> lessFunc1;
	cout << lessFunc1(1, 2) << endl;
	//lessFunc1.operator()(1,2);

	myless<string> lessFunc2;
	cout << lessFunc2("1.1", "2.2") << endl;

	return 0;
}